// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the BRASSICA_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// BRASSICA_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef BRASSICA_EXPORTS
#define BRASSICA_API __declspec(dllexport)
#else
#define BRASSICA_API __declspec(dllimport)
#endif

typedef UINT32 PIPEHANDLE;

typedef VOID (__cdecl ModRoutine(PIPEHANDLE PipeIn, PIPEHANDLE PipeOut));
//Public functions
SIZE_T BRASSICA_API PipeRead(PIPEHANDLE hPipe, VOID* buffer, SIZE_T maxlen);
VOID BRASSICA_API PipeWrite(PIPEHANDLE hPipe, VOID* data, SIZE_T datalen);

//Public modules
VOID BRASSICA_API File(PIPEHANDLE PipeIn, PIPEHANDLE PipeOut);